#ifndef CIRCUITBOARD_H
#define CIRCUITBOARD_H

#include "path.h"
#include "vector.hpp"

const int MAXN = 9; // 由于需要使用回溯法,电路板最大为9*9,再大无法得出结果

class CircuitBoard {
public:
    CircuitBoard(int n);

    Vector<Path> GetDfsPaths(const Pair<int, int> &start, const Pair<int, int> &end) const; // 回溯法,求可能布线线路
    Path GetBfsPath(const Pair<int, int> &start, const Pair<int, int> &end) const; // BFS,求最优布线线路

private:
    int n;
};

#endif // CIRCUITBOARD_H
